home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.ImageObserver;
-
- public class HRCanvas2 extends Canvas implements Runnable {
- Color bkColor;
- Image bkImage;
- Image osImage;
- Graphics osg;
- int width;
- int height;
- boolean noShade = false;
- Color barColor;
- int size;
- int imageX;
- int imageY;
- Image displayImage;
- int speed;
- Thread theThread;
- int increment;
- int direction = 1;
- boolean showRule;
- Image imageRule;
-
- public HRCanvas2(Applet var1, int var2) {
- this.GetParameters(var1, var2);
- }
-
- public void Start() {
- if (this.speed != -1) {
- this.theThread = new Thread(this);
- this.theThread.start();
- }
-
- }
-
- public void Stop() {
- if (this.theThread != null) {
- this.theThread.stop();
- this.theThread = null;
- }
-
- }
-
- void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("hrBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, (Color)null);
- if (this.bkColor != null) {
- ((Component)this).setBackground(this.bkColor);
- }
-
- var3 = var1.getParameter("hrBkImage" + var2);
- this.bkImage = var1.getImage(var1.getCodeBase(), var3);
- var3 = var1.getParameter("hrNoShade" + var2);
- this.noShade = var3 != null;
- var3 = var1.getParameter("hrColor" + var2);
- this.barColor = AppletParam2.GetColor(var3, Color.gray);
- var3 = var1.getParameter("hrSize" + var2);
- this.size = AppletParam2.GetInt(var3, 2);
- var3 = var1.getParameter("hrImage" + var2);
- this.displayImage = var1.getImage(var1.getCodeBase(), var3);
- var3 = var1.getParameter("hrSpeed" + var2);
- this.speed = AppletParam2.GetInt(var3, -1);
- if (this.speed != -1) {
- var3 = var1.getParameter("hrIncrement" + var2);
- this.increment = AppletParam2.GetInt(var3, 1);
- }
-
- var3 = var1.getParameter("hrShowRule" + var2);
- this.showRule = AppletParam2.GetBoolean(var3, true);
- var3 = var1.getParameter("hrImageRule" + var2);
- this.imageRule = var1.getImage(var1.getCodeBase(), var3);
- }
-
- public void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void update(Graphics var1) {
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, this.width, this.height);
- if (this.bkImage != null) {
- int var2 = this.bkImage.getWidth(this);
- int var3 = this.bkImage.getHeight(this);
- int var4 = ((Component)this).size().width / var2;
- int var5 = ((Component)this).size().height / var3;
- ++var4;
- ++var5;
-
- for(int var6 = 0; var6 < var5; ++var6) {
- for(int var7 = 0; var7 < var4; ++var7) {
- this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
- }
- }
- }
-
- if (this.imageRule != null) {
- int var8 = ((Component)this).size().width / this.imageRule.getWidth(this) + 1;
-
- for(int var11 = 0; var11 < var8; ++var11) {
- int var15 = ((Component)this).size().height / 2 - this.imageRule.getHeight(this) / 2;
- this.osg.drawImage(this.imageRule, var11 * this.imageRule.getWidth((ImageObserver)null), var15, this);
- }
- } else if (this.showRule) {
- int var9 = 0;
- int var12 = 0;
- if (this.size % 2 != 0) {
- var9 = this.height / 2 - 1 - this.size / 2;
- var12 = this.height / 2 - 1 + this.size / 2;
- } else {
- var9 = this.height / 2 - 1 - (this.size / 2 - 1);
- var12 = this.height / 2 - 1 + this.size / 2;
- }
-
- if (this.noShade) {
- this.osg.setColor(this.barColor);
- if (this.size == 1) {
- this.osg.drawLine(0, this.height / 2, this.width, this.height / 2);
- } else {
- for(int var16 = var9; var16 <= var12; ++var16) {
- this.osg.drawLine(0, var16, this.width, var16);
- }
- }
- } else {
- this.osg.setColor(Color.gray);
- if (this.size < 2) {
- this.osg.drawLine(0, this.height / 2, this.width, this.height / 2);
- } else {
- this.osg.drawLine(0, var9, this.width, var9);
- this.osg.drawLine(0, var9, 0, var12 - 1);
- this.osg.setColor(Color.white);
- this.osg.drawLine(0, var12, this.width, var12);
- this.osg.drawLine(this.width - 1, var9 + 1, this.width - 1, var12);
- }
- }
- }
-
- if (this.displayImage != null) {
- this.imageY = ((Component)this).size().height / 2 - this.displayImage.getHeight((ImageObserver)null) / 2;
- this.osg.drawImage(this.displayImage, this.imageX, this.imageY, this);
- }
-
- var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.width = var3;
- this.height = var4;
- this.osImage = ((Component)this).createImage(var3, var4);
- this.osg = this.osImage.getGraphics();
- this.imageX = 0;
- ((Component)this).repaint();
- }
-
- public void run() {
- try {
- while(true) {
- Thread.sleep((long)this.speed);
- ((Component)this).repaint();
- if (this.displayImage != null) {
- int var1 = this.displayImage.getWidth((ImageObserver)null);
- this.imageX += this.direction * this.increment;
- if (this.imageX > ((Component)this).size().width - var1) {
- this.direction = -this.direction;
- this.imageX = ((Component)this).size().width - var1;
- } else if (this.imageX < 0) {
- this.direction = -this.direction;
- this.imageX = 0;
- }
- }
- }
- } catch (InterruptedException var2) {
- }
- }
-
- public Dimension minimumSize() {
- return new Dimension(10, 10);
- }
-
- public Dimension preferredSize() {
- return new Dimension(10, 10);
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- ((Component)this).repaint();
- return true;
- }
- }
-